home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / VISCAFE.BIN / DirectionButton.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-06-19  |  2.6 KB  |  140 lines

  1. package symantec.itools.awt;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.awt.Polygon;
  8. import symantec.itools.lang.OS;
  9.  
  10. public class DirectionButton extends ButtonBase {
  11.    public static final int LEFT = 0;
  12.    public static final int RIGHT = 1;
  13.    // $FF: renamed from: UP int
  14.    public static final int field_0 = 2;
  15.    public static final int DOWN = 3;
  16.    private int direction;
  17.    private int left;
  18.    private int right;
  19.    private int top;
  20.    private int bottom;
  21.    private int indent;
  22.    private Polygon poly;
  23.  
  24.    public DirectionButton() {
  25.       this(0);
  26.    }
  27.  
  28.    public DirectionButton(int var1) {
  29.       this.direction = var1;
  30.       this.left = 0;
  31.       this.right = 0;
  32.       this.bottom = 0;
  33.       this.indent = 0;
  34.       this.poly = null;
  35.    }
  36.  
  37.    public void setDirection(int var1) {
  38.       this.direction = var1;
  39.    }
  40.  
  41.    public int getDirection() {
  42.       return this.direction;
  43.    }
  44.  
  45.    public void setArrowIndent(int var1) {
  46.       this.indent = var1;
  47.       ((Component)this).invalidate();
  48.    }
  49.  
  50.    public int getArrowIndent() {
  51.       return this.indent;
  52.    }
  53.  
  54.    public void shrinkTriangle(int var1, int var2, int var3, int var4) {
  55.       this.left = var1;
  56.       this.right = var2;
  57.       this.top = var3;
  58.       this.bottom = var4;
  59.    }
  60.  
  61.    public void paint(Graphics var1) {
  62.       super.paint(var1);
  63.       this.updatePolygon();
  64.       if (((Component)this).isEnabled()) {
  65.          var1.setColor(Color.black);
  66.       } else {
  67.          var1.setColor(Color.gray);
  68.       }
  69.  
  70.       var1.fillPolygon(this.poly);
  71.    }
  72.  
  73.    public Dimension preferredSize() {
  74.       Dimension var1 = ((Component)this).size();
  75.       return new Dimension(Math.max(var1.width, ((Component)this).minimumSize().width), Math.max(var1.height, ((Component)this).minimumSize().height));
  76.    }
  77.  
  78.    void updatePolygon() {
  79.       Dimension var1 = ((Component)this).size();
  80.       this.poly = new Polygon();
  81.       int var2 = var1.width / 2 + super.pressedAdjustment;
  82.       int var3 = var1.height / 2 + super.pressedAdjustment;
  83.       int var4 = this.top + super.bevel * 2 + super.pressedAdjustment + this.indent;
  84.       int var5 = var1.height - this.bottom - super.bevel * 2 + super.pressedAdjustment - this.indent;
  85.       int var6 = this.left + super.bevel * 2 + super.pressedAdjustment + this.indent;
  86.       int var7 = var1.width - this.right - super.bevel * 2 + super.pressedAdjustment - this.indent;
  87.       switch (this.direction) {
  88.          case 0:
  89.             if (OS.isMacintosh()) {
  90.                this.poly.addPoint(var6 - 2, var3 - 1);
  91.                this.poly.addPoint(var7 - 2, var4 - 1);
  92.                this.poly.addPoint(var7 - 2, var5 - 1);
  93.                return;
  94.             }
  95.  
  96.             this.poly.addPoint(var6, var3);
  97.             this.poly.addPoint(var7, var4);
  98.             this.poly.addPoint(var7, var5);
  99.             return;
  100.          case 1:
  101.             if (OS.isMacintosh()) {
  102.                this.poly.addPoint(var7 - 1, var3 - 1);
  103.                this.poly.addPoint(var6, var4 - 1);
  104.                this.poly.addPoint(var6, var5 - 2);
  105.                return;
  106.             }
  107.  
  108.             this.poly.addPoint(var7, var3);
  109.             this.poly.addPoint(var6, var4);
  110.             this.poly.addPoint(var6, var5);
  111.             return;
  112.          case 2:
  113.             if (OS.isMacintosh()) {
  114.                this.poly.addPoint(var2 - 1, var4 - 1);
  115.                this.poly.addPoint(var6 - 1, var5 - 2);
  116.                this.poly.addPoint(var7 - 2, var5 - 2);
  117.                return;
  118.             }
  119.  
  120.             this.poly.addPoint(var2, var4);
  121.             this.poly.addPoint(var6, var5);
  122.             this.poly.addPoint(var7, var5);
  123.             return;
  124.          case 3:
  125.             if (OS.isMacintosh()) {
  126.                this.poly.addPoint(var2 - 1, var5);
  127.                this.poly.addPoint(var6 - 1, var4);
  128.                this.poly.addPoint(var7 - 1, var4);
  129.                return;
  130.             }
  131.  
  132.             this.poly.addPoint(var2, var5);
  133.             this.poly.addPoint(var6, var4);
  134.             this.poly.addPoint(var7, var4);
  135.             return;
  136.          default:
  137.       }
  138.    }
  139. }
  140.